home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / cg.lha / cg / m2c / Parser.c < prev    next >
C/C++ Source or Header  |  1992-11-24  |  64KB  |  1,653 lines

  1. #include "SYSTEM_.h"
  2.  
  3. #ifndef DEFINITION_Scanner
  4. #include "Scanner.h"
  5. #endif
  6.  
  7. #ifndef DEFINITION_Positions
  8. #include "Positions.h"
  9. #endif
  10.  
  11. #ifndef DEFINITION_Errors
  12. #include "Errors.h"
  13. #endif
  14.  
  15. #ifndef DEFINITION_Strings
  16. #include "Strings.h"
  17. #endif
  18.  
  19. #ifndef DEFINITION_DynArray
  20. #include "DynArray.h"
  21. #endif
  22.  
  23. #ifndef DEFINITION_Sets
  24. #include "Sets.h"
  25. #endif
  26.  
  27. #ifndef DEFINITION_System
  28. #include "System.h"
  29. #endif
  30.  
  31. #ifndef DEFINITION_StringMem
  32. #include "StringMem.h"
  33. #endif
  34.  
  35. #ifndef DEFINITION_Strings
  36. #include "Strings.h"
  37. #endif
  38.  
  39. #ifndef DEFINITION_Idents
  40. #include "Idents.h"
  41. #endif
  42.  
  43. #ifndef DEFINITION_Texts
  44. #include "Texts.h"
  45. #endif
  46.  
  47. #ifndef DEFINITION_Scanner
  48. #include "Scanner.h"
  49. #endif
  50.  
  51. #ifndef DEFINITION_Positions
  52. #include "Positions.h"
  53. #endif
  54.  
  55. #ifndef DEFINITION_Idents
  56. #include "Idents.h"
  57. #endif
  58.  
  59. #ifndef DEFINITION_Tree
  60. #include "Tree.h"
  61. #endif
  62.  
  63. #ifndef DEFINITION_Parser
  64. #include "Parser.h"
  65. #endif
  66.  
  67. struct Parser_1 Parser_ParsTabName;
  68.  
  69. typedef struct S_1 {
  70.     union {
  71.         struct {
  72.             Scanner_tScanAttribute Scan;
  73.             BITSET Properties;
  74.         } V_1;
  75.         struct {
  76.             Tree_tTree Tree;
  77.             Idents_tIdent Ident;
  78.         } V_2;
  79.     } U_1;
  80. } tParsAttribute;
  81. static BITSET Properties, InitProperties;
  82. static Strings_tString String1, String2;
  83. static INTEGER ClassCount;
  84. static CARDINAL i;
  85. static Idents_tIdent ClassIdent, ModuleIdent;
  86. static Idents_tIdent ParserName, TreeName, EvalName;
  87. static Tree_tTree mCodes ARGS(());
  88. static void UpdateName ARGS((Idents_tIdent *Name, Idents_tIdent Ident));
  89. #define yyInitStackSize    100
  90. #define yyNoState    0
  91. #define yyFirstTerminal    0
  92. #define yyLastTerminal    78
  93. #define yyFirstSymbol    0
  94. #define yyLastSymbol    119
  95. #define yyTableMax    1165
  96. #define yyNTableMax    244
  97. #define yyFirstReadState    1
  98. #define yyLastReadState    184
  99. #define yyFirstReadTermState    185
  100. #define yyLastReadTermState    235
  101. #define yyLastReadNontermState    241
  102. #define yyFirstReduceState    242
  103. #define yyLastReduceState    364
  104. #define yyStartState    1
  105. #define yyStopState    242
  106. #define yyFirstFinalState    yyFirstReadTermState
  107. #define yyLastState    yyLastReduceState
  108. typedef SHORTCARD yyTableElmt;
  109. typedef yyTableElmt yyTCombRange;
  110. typedef yyTableElmt yyNCombRange;
  111. typedef yyTableElmt yyStateRange;
  112. typedef yyTableElmt yyReadRange;
  113. typedef yyTableElmt yyReadReduceRange;
  114. typedef yyTableElmt yyReduceRange;
  115. typedef yyTableElmt yySymbolRange;
  116. typedef struct S_2 {
  117.     yyStateRange Check, Next;
  118. } yyTCombType;
  119. typedef yyStateRange yyNCombType;
  120. typedef yyTCombType *yyTCombTypePtr;
  121. typedef yyNCombType *yyNCombTypePtr;
  122. typedef struct S_3 {
  123.     yyStateRange A[1000000 + 1];
  124. } *yyStackType;
  125. static struct S_4 {
  126.     yyTCombTypePtr A[yyLastReadState + 1];
  127. } yyTBasePtr;
  128. static struct S_5 {
  129.     yyNCombTypePtr A[yyLastReadState + 1];
  130. } yyNBasePtr;
  131. static struct S_6 {
  132.     yyReadRange A[yyLastReadState + 1];
  133. } yyDefault;
  134. static struct S_7 {
  135.     yyTCombType A[yyTableMax + 1];
  136. } yyTComb;
  137. static struct S_8 {
  138.     yyNCombType A[yyNTableMax - (yyLastTerminal + 1) + 1];
  139. } yyNComb;
  140. static struct S_9 {
  141.     yyTableElmt A[yyLastReduceState - yyFirstReduceState + 1];
  142. } yyLength;
  143. static struct S_10 {
  144.     yySymbolRange A[yyLastReduceState - yyFirstReduceState + 1];
  145. } yyLeftHandSide;
  146. static struct S_11 {
  147.     yySymbolRange A[yyLastReadState + 1];
  148. } yyContinuation;
  149. static struct S_12 {
  150.     yyReduceRange A[yyLastReadNontermState - yyFirstReadTermState + 1];
  151. } yyFinalToProd;
  152. static BOOLEAN yyIsInitialized;
  153. static System_tFile yyTableFile;
  154. static void Copy ARGS((CHAR Source[], LONGCARD , CHAR Target[], LONGCARD ));
  155. struct S_16 {
  156.     tParsAttribute A[1000000 + 1];
  157. };
  158. struct S_17 {
  159.     CHAR A[127 + 1];
  160. };
  161. static void ErrorRecovery ARGS((yySymbolRange *Terminal, yyStackType StateStack, LONGINT StackSize, LONGINT StackPtr));
  162. struct S_18 {
  163.     CHAR A[127 + 1];
  164. };
  165. static void ComputeContinuation ARGS((yyStackType Stack, LONGINT StackSize, LONGINT StackPtr, Sets_tSet *ContinueSet));
  166. static BOOLEAN IsContinuation ARGS((yySymbolRange Terminal, yyStackType ParseStack, LONGINT StackSize, LONGINT StackPtr));
  167. static void ComputeRestartPoints ARGS((yyStackType ParseStack, LONGINT StackSize, LONGINT StackPtr, Sets_tSet *RestartSet));
  168. static yyStateRange Next ARGS((yyStateRange State, yySymbolRange Symbol));
  169. static void yyGetTables ARGS(());
  170. struct S_19 {
  171.     yyTCombRange A[yyLastReadState + 1];
  172. };
  173. struct S_20 {
  174.     yyNCombRange A[yyLastReadState + 1];
  175. };
  176. static CARDINAL yyGetTable ARGS((ADDRESS Address));
  177. static void yyErrorCheck ARGS((INTEGER ErrorCode, INTEGER Info));
  178. static void BeginParser ARGS(());
  179.  
  180.  
  181. static Tree_tTree mCodes
  182. # ifdef __STDC__
  183. ()
  184. # else
  185. ()
  186. # endif
  187. {
  188.   Tree_tTree t;
  189.  
  190.   t = Tree_MakeTree(Tree_Codes);
  191.   {
  192.     register Tree_yCodes *W_1 = &t->U_1.V_12.Codes;
  193.  
  194.     Texts_MakeText(&W_1->Export);
  195.     Texts_MakeText(&W_1->Import);
  196.     Texts_MakeText(&W_1->Global);
  197.     Texts_MakeText(&W_1->Local);
  198.     Texts_MakeText(&W_1->Begin);
  199.     Texts_MakeText(&W_1->Close);
  200.     W_1->ExportLine = Positions_NoPosition;
  201.     W_1->ImportLine = Positions_NoPosition;
  202.     W_1->GlobalLine = Positions_NoPosition;
  203.     W_1->LocalLine = Positions_NoPosition;
  204.     W_1->BeginLine = Positions_NoPosition;
  205.     W_1->CloseLine = Positions_NoPosition;
  206.   }
  207.   return t;
  208. }
  209.  
  210. static void UpdateName
  211. # ifdef __STDC__
  212. (Idents_tIdent *Name, Idents_tIdent Ident)
  213. # else
  214. (Name, Ident)
  215. Idents_tIdent *Name;
  216. Idents_tIdent Ident;
  217. # endif
  218. {
  219.   if (*Name == Idents_NoIdent) {
  220.     *Name = Ident;
  221.   }
  222. }
  223.  
  224. static void Copy
  225. # ifdef __STDC__
  226. (CHAR Source[], LONGCARD O_2, CHAR Target[], LONGCARD O_1)
  227. # else
  228. (Source, O_2, Target, O_1)
  229. CHAR Source[];
  230. LONGCARD O_2;
  231. CHAR Target[];
  232. LONGCARD O_1;
  233. # endif
  234. {
  235.   CARDINAL i, j;
  236.   OPEN_ARRAY_LOCALS
  237.  
  238.   ALLOC_OPEN_ARRAYS(O_2 * sizeof(CHAR), 1)
  239.   COPY_OPEN_ARRAY(Source, O_2, CHAR)
  240.   if ((O_2 - 1) < (O_1 - 1)) {
  241.     j = (O_2 - 1);
  242.   } else {
  243.     j = (O_1 - 1);
  244.   }
  245.   {
  246.     LONGCARD B_1 = 0, B_2 = j;
  247.  
  248.     if (B_1 <= B_2)
  249.       for (i = B_1;; i += 1) {
  250.         Target[i] = Source[i];
  251.         if (i >= B_2) break;
  252.       }
  253.   }
  254.   if ((O_1 - 1) > j) {
  255.     Target[j + 1] = CHR(0);
  256.   }
  257.   FREE_OPEN_ARRAYS
  258. }
  259.  
  260. void Parser_TokenName
  261. # ifdef __STDC__
  262. (CARDINAL Token, CHAR Name[], LONGCARD O_3)
  263. # else
  264. (Token, Name, O_3)
  265. CARDINAL Token;
  266. CHAR Name[];
  267. LONGCARD O_3;
  268. # endif
  269. {
  270.   switch (Token) {
  271.   case 0:;
  272.     Copy((STRING)"_EndOfFile", 10L, Name, O_3);
  273.     break;
  274.   case 1:;
  275.     Copy((STRING)"Ident", 5L, Name, O_3);
  276.     break;
  277.   case 2:;
  278.     Copy((STRING)"Integer", 7L, Name, O_3);
  279.     break;
  280.   case 3:;
  281.     Copy((STRING)"String", 6L, Name, O_3);
  282.     break;
  283.   case 4:;
  284.     Copy((STRING)"TargetCode", 10L, Name, O_3);
  285.     break;
  286.   case 5:;
  287.     Copy((STRING)"Code", 4L, Name, O_3);
  288.     break;
  289.   case 6:;
  290.     Copy((STRING)"FUNCTION", 8L, Name, O_3);
  291.     break;
  292.   case 7:;
  293.     Copy((STRING)"WhiteSpace", 10L, Name, O_3);
  294.     break;
  295.   case 10:;
  296.     Copy((STRING)"BEGIN", 5L, Name, O_3);
  297.     break;
  298.   case 11:;
  299.     Copy((STRING)"CLOSE", 5L, Name, O_3);
  300.     break;
  301.   case 12:;
  302.     Copy((STRING)"DECLARE", 7L, Name, O_3);
  303.     break;
  304.   case 13:;
  305.     Copy((STRING)"END", 3L, Name, O_3);
  306.     break;
  307.   case 14:;
  308.     Copy((STRING)"EVAL", 4L, Name, O_3);
  309.     break;
  310.   case 15:;
  311.     Copy((STRING)"EXPORT", 6L, Name, O_3);
  312.     break;
  313.   case 16:;
  314.     Copy((STRING)"GLOBAL", 6L, Name, O_3);
  315.     break;
  316.   case 17:;
  317.     Copy((STRING)"VIRTUAL", 7L, Name, O_3);
  318.     break;
  319.   case 18:;
  320.     Copy((STRING)"LOCAL", 5L, Name, O_3);
  321.     break;
  322.   case 19:;
  323.     Copy((STRING)"MODULE", 6L, Name, O_3);
  324.     break;
  325.   case 20:;
  326.     Copy((STRING)"STACK", 5L, Name, O_3);
  327.     break;
  328.   case 21:;
  329.     Copy((STRING)"REVERSE", 7L, Name, O_3);
  330.     break;
  331.   case 22:;
  332.     Copy((STRING)"RULE", 4L, Name, O_3);
  333.     break;
  334.   case 23:;
  335.     Copy((STRING)"TREE", 4L, Name, O_3);
  336.     break;
  337.   case 24:;
  338.     Copy((STRING)"AFTER", 5L, Name, O_3);
  339.     break;
  340.   case 25:;
  341.     Copy((STRING)"BEFORE", 6L, Name, O_3);
  342.     break;
  343.   case 26:;
  344.     Copy((STRING)"CHECK", 5L, Name, O_3);
  345.     break;
  346.   case 27:;
  347.     Copy((STRING)"THREAD", 6L, Name, O_3);
  348.     break;
  349.   case 28:;
  350.     Copy((STRING)"DEMAND", 6L, Name, O_3);
  351.     break;
  352.   case 30:;
  353.     Copy((STRING)"IMPORT", 6L, Name, O_3);
  354.     break;
  355.   case 31:;
  356.     Copy((STRING)"INPUT", 5L, Name, O_3);
  357.     break;
  358.   case 32:;
  359.     Copy((STRING)"OUTPUT", 6L, Name, O_3);
  360.     break;
  361.   case 33:;
  362.     Copy((STRING)"SYNTHESIZED", 11L, Name, O_3);
  363.     break;
  364.   case 34:;
  365.     Copy((STRING)"INHERITED", 9L, Name, O_3);
  366.     break;
  367.   case 35:;
  368.     Copy((STRING)"PARSER", 6L, Name, O_3);
  369.     break;
  370.   case 36:;
  371.     Copy((STRING)"PREC", 4L, Name, O_3);
  372.     break;
  373.   case 37:;
  374.     Copy((STRING)"LEFT", 4L, Name, O_3);
  375.     break;
  376.   case 38:;
  377.     Copy((STRING)"RIGHT", 5L, Name, O_3);
  378.     break;
  379.   case 39:;
  380.     Copy((STRING)"NONE", 4L, Name, O_3);
  381.     break;
  382.   case 40:;
  383.     Copy((STRING)"(", 1L, Name, O_3);
  384.     break;
  385.   case 41:;
  386.     Copy((STRING)")", 1L, Name, O_3);
  387.     break;
  388.   case 42:;
  389.     Copy((STRING)"[", 1L, Name, O_3);
  390.     break;
  391.   case 43:;
  392.     Copy((STRING)"]", 1L, Name, O_3);
  393.     break;
  394.   case 44:;
  395.     Copy((STRING)"{", 1L, Name, O_3);
  396.     break;
  397.   case 45:;
  398.     Copy((STRING)"}", 1L, Name, O_3);
  399.     break;
  400.   case 46:;
  401.     Copy((STRING)",", 1L, Name, O_3);
  402.     break;
  403.   case 47:;
  404.     Copy((STRING)";", 1L, Name, O_3);
  405.     break;
  406.   case 48:;
  407.     Copy((STRING)".", 1L, Name, O_3);
  408.     break;
  409.   case 49:;
  410.     Copy((STRING)":", 1L, Name, O_3);
  411.     break;
  412.   case 50:;
  413.     Copy((STRING)"=", 1L, Name, O_3);
  414.     break;
  415.   case 52:;
  416.     Copy((STRING)":=", 2L, Name, O_3);
  417.     break;
  418.   case 57:;
  419.     Copy((STRING)"<", 1L, Name, O_3);
  420.     break;
  421.   case 58:;
  422.     Copy((STRING)">", 1L, Name, O_3);
  423.     break;
  424.   case 59:;
  425.     Copy((STRING)"->", 2L, Name, O_3);
  426.     break;
  427.   case 60:;
  428.     Copy((STRING)":-", 2L, Name, O_3);
  429.     break;
  430.   case 61:;
  431.     Copy((STRING)"=>", 2L, Name, O_3);
  432.     break;
  433.   case 62:;
  434.     Copy((STRING)"<-", 2L, Name, O_3);
  435.     break;
  436.   case 70:;
  437.     Copy((STRING)"PROPERTY", 8L, Name, O_3);
  438.     break;
  439.   case 71:;
  440.     Copy((STRING)"FOR", 3L, Name, O_3);
  441.     break;
  442.   case 72:;
  443.     Copy((STRING)"IGNORE", 6L, Name, O_3);
  444.     break;
  445.   case 74:;
  446.     Copy((STRING)"SELECT", 6L, Name, O_3);
  447.     break;
  448.   case 75:;
  449.     Copy((STRING)"SUBUNIT", 7L, Name, O_3);
  450.     break;
  451.   case 76:;
  452.     Copy((STRING)"REMOTE", 6L, Name, O_3);
  453.     break;
  454.   case 77:;
  455.     Copy((STRING)"SCANNER", 7L, Name, O_3);
  456.     break;
  457.   case 78:;
  458.     Copy((STRING)"VIEW", 4L, Name, O_3);
  459.     break;
  460.   }
  461. }
  462.  
  463. CARDINAL Parser_Parser
  464. # ifdef __STDC__
  465. ()
  466. # else
  467. ()
  468. # endif
  469. {
  470.   yyStateRange yyState;
  471.   yySymbolRange yyTerminal;
  472.   yySymbolRange yyNonterminal;
  473.   yyTableElmt yyStackPtr;
  474.   LONGINT yyStateStackSize;
  475.   LONGINT yyAttrStackSize;
  476.   yyTableElmt yyShortStackSize;
  477.   yyStackType yyStateStack;
  478.   struct S_16 *yyAttributeStack;
  479.   tParsAttribute yySynAttribute;
  480.   Scanner_tScanAttribute yyRepairAttribute;
  481.   yySymbolRange yyRepairToken;
  482.   yyTCombTypePtr yyTCombPtr;
  483.   yyNCombTypePtr yyNCombPtr;
  484.   BOOLEAN yyIsRepairing;
  485.   CARDINAL yyErrorCount;
  486.   struct S_17 yyTokenString;
  487.  
  488.   BeginParser();
  489.   yyState = yyStartState;
  490.   yyTerminal = Scanner_GetToken();
  491.   yyStateStackSize = yyInitStackSize;
  492.   yyAttrStackSize = yyInitStackSize;
  493.   DynArray_MakeArray((ADDRESS *)&yyStateStack, &yyStateStackSize, (LONGINT)sizeof(yyStateRange));
  494.   DynArray_MakeArray((ADDRESS *)&yyAttributeStack, &yyAttrStackSize, (LONGINT)sizeof(tParsAttribute));
  495.   yyShortStackSize = yyStateStackSize - 1;
  496.   yyStackPtr = 0;
  497.   yyErrorCount = 0;
  498.   yyIsRepairing = FALSE;
  499.   for (;;) {
  500.     if (yyStackPtr >= yyShortStackSize) {
  501.       DynArray_ExtendArray((ADDRESS *)&yyStateStack, &yyStateStackSize, (LONGINT)sizeof(yyStateRange));
  502.       DynArray_ExtendArray((ADDRESS *)&yyAttributeStack, &yyAttrStackSize, (LONGINT)sizeof(tParsAttribute));
  503.       yyShortStackSize = yyStateStackSize - 1;
  504.     }
  505.     yyStateStack->A[yyStackPtr] = yyState;
  506.     for (;;) {
  507.       yyTCombPtr = (yyTCombTypePtr)((LONGCARD)yyTBasePtr.A[yyState] + yyTerminal * sizeof(yyTCombType));
  508.       if (yyTCombPtr->Check == yyState) {
  509.         yyState = yyTCombPtr->Next;
  510.         goto EXIT_2;
  511.       }
  512.       yyState = yyDefault.A[yyState];
  513.       if (yyState == yyNoState) {
  514.         yyState = yyStateStack->A[yyStackPtr];
  515.         if (yyIsRepairing) {
  516.           yyRepairToken = yyContinuation.A[yyState];
  517.           yyState = Next(yyState, yyRepairToken);
  518.           if (yyState <= yyLastReadTermState) {
  519.             Scanner_ErrorAttribute((LONGCARD)yyRepairToken, &yyRepairAttribute);
  520.             Parser_TokenName((LONGCARD)yyRepairToken, yyTokenString.A, 128L);
  521.             Errors_ErrorMessageI((LONGCARD)Errors_TokenInserted, (LONGCARD)Errors_Repair, Scanner_Attribute.Position, (LONGCARD)Errors_Array, ADR(yyTokenString));
  522.             if (yyState >= yyFirstFinalState) {
  523.               yyState = yyFinalToProd.A[yyState - 185];
  524.             }
  525.             INC(yyStackPtr);
  526.             yyAttributeStack->A[yyStackPtr].U_1.V_1.Scan = yyRepairAttribute;
  527.             yyStateStack->A[yyStackPtr] = yyState;
  528.           }
  529.           if (yyState >= yyFirstFinalState) {
  530.             goto EXIT_2;
  531.           }
  532.         } else {
  533.           INC(yyErrorCount);
  534.           ErrorRecovery(&yyTerminal, yyStateStack, yyStateStackSize, (LONGINT)yyStackPtr);
  535.           yyIsRepairing = TRUE;
  536.         }
  537.       }
  538.     } EXIT_2:;
  539.     if (yyState >= yyFirstFinalState) {
  540.       if (yyState <= yyLastReadTermState) {
  541.         INC(yyStackPtr);
  542.         yyAttributeStack->A[yyStackPtr].U_1.V_1.Scan = Scanner_Attribute;
  543.         yyTerminal = Scanner_GetToken();
  544.         yyIsRepairing = FALSE;
  545.       }
  546.       for (;;) {
  547.         switch (yyState) {
  548.         case 242:;
  549.           DynArray_ReleaseArray((ADDRESS *)&yyStateStack, &yyStateStackSize, (LONGINT)sizeof(yyTableElmt));
  550.           DynArray_ReleaseArray((ADDRESS *)&yyAttributeStack, &yyAttrStackSize, (LONGINT)sizeof(tParsAttribute));
  551.           return yyErrorCount;
  552.           break;
  553.         case 243:;
  554.           DEC1(yyStackPtr, 9);
  555.           yyNonterminal = 88;
  556.           Tree_TreeRoot = Tree_mAg(Idents_NoIdent, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Ident, ParserName, yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree, TreeName, yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree, EvalName, yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 7].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 9].U_1.V_2.Tree));
  557.           break;
  558.         case 244:;
  559.           DEC1(yyStackPtr, 14);
  560.           yyNonterminal = 88;
  561.           Tree_TreeRoot = Tree_mAg(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Ident, ParserName, yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree, TreeName, yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree, EvalName, yyAttributeStack->A[yyStackPtr + 7].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 9].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 10].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 11].U_1.V_2.Tree, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 14].U_1.V_2.Tree));
  562.           break;
  563.         case 245:;
  564.           DEC1(yyStackPtr, 0);
  565.           yyNonterminal = 89;
  566.           ModuleIdent = yyAttributeStack->A[yyStackPtr + 0].U_1.V_1.Scan.U_1.V_2.Ident;
  567.           break;
  568.         case 246:;
  569.           DEC1(yyStackPtr, 0);
  570.           yyNonterminal = 79;
  571.           yySynAttribute.U_1.V_2.Ident = Idents_NoIdent;
  572.           break;
  573.         case 247:;
  574.           DEC1(yyStackPtr, 1);
  575.           yyNonterminal = 79;
  576.           Strings_ArrayToString((STRING)"Scanner", 7L, &String1);
  577.           yySynAttribute.U_1.V_2.Ident = Idents_MakeIdent(&String1);
  578.           break;
  579.         case 248:;
  580.         case 236:;
  581.           DEC1(yyStackPtr, 2);
  582.           yyNonterminal = 79;
  583.           yySynAttribute.U_1.V_2.Ident = yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident;
  584.           break;
  585.         case 249:;
  586.           DEC1(yyStackPtr, 0);
  587.           yyNonterminal = 80;
  588.           yySynAttribute.U_1.V_2.Tree = mCodes();
  589.           break;
  590.         case 250:;
  591.           DEC1(yyStackPtr, 2);
  592.           yyNonterminal = 80;
  593.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree;
  594.           break;
  595.         case 251:;
  596.           DEC1(yyStackPtr, 3);
  597.           yyNonterminal = 80;
  598.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree;
  599.           UpdateName(&ParserName, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident);
  600.           break;
  601.         case 252:;
  602.           DEC1(yyStackPtr, 1);
  603.           yyNonterminal = 81;
  604.           yySynAttribute.U_1.V_2.Tree = mCodes();
  605.           break;
  606.         case 253:;
  607.           DEC1(yyStackPtr, 3);
  608.           yyNonterminal = 81;
  609.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree;
  610.           break;
  611.         case 254:;
  612.           DEC1(yyStackPtr, 4);
  613.           yyNonterminal = 81;
  614.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree;
  615.           UpdateName(&TreeName, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident);
  616.           break;
  617.         case 255:;
  618.           DEC1(yyStackPtr, 0);
  619.           yyNonterminal = 82;
  620.           yySynAttribute.U_1.V_2.Tree = mCodes();
  621.           break;
  622.         case 256:;
  623.           DEC1(yyStackPtr, 2);
  624.           yyNonterminal = 82;
  625.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree;
  626.           break;
  627.         case 257:;
  628.           DEC1(yyStackPtr, 3);
  629.           yyNonterminal = 82;
  630.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree;
  631.           UpdateName(&EvalName, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident);
  632.           break;
  633.         case 258:;
  634.           DEC1(yyStackPtr, 0);
  635.           yyNonterminal = 91;
  636.           yySynAttribute.U_1.V_2.Tree = mCodes();
  637.           break;
  638.         case 259:;
  639.         case 189:;
  640.           DEC1(yyStackPtr, 3);
  641.           yyNonterminal = 91;
  642.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  643.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Export = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  644.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.ExportLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  645.           break;
  646.         case 260:;
  647.         case 192:;
  648.           DEC1(yyStackPtr, 3);
  649.           yyNonterminal = 91;
  650.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  651.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Import = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  652.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.ImportLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  653.           break;
  654.         case 261:;
  655.         case 190:;
  656.           DEC1(yyStackPtr, 3);
  657.           yyNonterminal = 91;
  658.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  659.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Global = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  660.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.GlobalLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  661.           break;
  662.         case 262:;
  663.         case 191:;
  664.           DEC1(yyStackPtr, 3);
  665.           yyNonterminal = 91;
  666.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  667.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Local = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  668.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.LocalLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  669.           break;
  670.         case 263:;
  671.         case 187:;
  672.           DEC1(yyStackPtr, 3);
  673.           yyNonterminal = 91;
  674.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  675.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Begin = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  676.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.BeginLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  677.           break;
  678.         case 264:;
  679.         case 188:;
  680.           DEC1(yyStackPtr, 3);
  681.           yyNonterminal = 91;
  682.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  683.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.Close = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_4.Text;
  684.           yySynAttribute.U_1.V_2.Tree->U_1.V_12.Codes.CloseLine = yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position;
  685.           break;
  686.         case 265:;
  687.           DEC1(yyStackPtr, 0);
  688.           yyNonterminal = 92;
  689.           break;
  690.         case 266:;
  691.         case 237:;
  692.           DEC1(yyStackPtr, 3);
  693.           yyNonterminal = 92;
  694.           UpdateName(&Tree_SubUnit, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident);
  695.           break;
  696.         case 267:;
  697.         case 238:;
  698.           DEC1(yyStackPtr, 3);
  699.           yyNonterminal = 92;
  700.           UpdateName(&Tree_ViewName, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident);
  701.           break;
  702.         case 268:;
  703.           DEC1(yyStackPtr, 0);
  704.           yyNonterminal = 83;
  705.           yySynAttribute.U_1.V_2.Tree = Tree_nNoPrec;
  706.           break;
  707.         case 269:;
  708.           DEC1(yyStackPtr, 2);
  709.           yyNonterminal = 83;
  710.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  711.           break;
  712.         case 270:;
  713.           DEC1(yyStackPtr, 0);
  714.           yyNonterminal = 93;
  715.           yySynAttribute.U_1.V_2.Tree = Tree_nNoPrec;
  716.           break;
  717.         case 271:;
  718.           DEC1(yyStackPtr, 3);
  719.           yyNonterminal = 93;
  720.           yySynAttribute.U_1.V_2.Tree = Tree_mLeftAssoc(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  721.           break;
  722.         case 272:;
  723.           DEC1(yyStackPtr, 3);
  724.           yyNonterminal = 93;
  725.           yySynAttribute.U_1.V_2.Tree = Tree_mRightAssoc(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  726.           break;
  727.         case 273:;
  728.           DEC1(yyStackPtr, 3);
  729.           yyNonterminal = 93;
  730.           yySynAttribute.U_1.V_2.Tree = Tree_mNonAssoc(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  731.           break;
  732.         case 274:;
  733.           DEC1(yyStackPtr, 1);
  734.           yyNonterminal = 84;
  735.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  736.           break;
  737.         case 275:;
  738.           DEC1(yyStackPtr, 0);
  739.           yyNonterminal = 95;
  740.           yySynAttribute.U_1.V_2.Tree = Tree_nNoProp;
  741.           break;
  742.         case 276:;
  743.           DEC1(yyStackPtr, 3);
  744.           yyNonterminal = 95;
  745.           yySynAttribute.U_1.V_2.Tree = Tree_mProp(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Properties, Tree_mName(ModuleIdent, Positions_NoPosition, Tree_nNoName), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  746.           InitProperties = 0X0L;
  747.           break;
  748.         case 277:;
  749.           DEC1(yyStackPtr, 5);
  750.           yyNonterminal = 95;
  751.           yySynAttribute.U_1.V_2.Tree = Tree_mProp(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Properties, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  752.           InitProperties = 0X0L;
  753.           break;
  754.         case 278:;
  755.           DEC1(yyStackPtr, 3);
  756.           yyNonterminal = 95;
  757.           yySynAttribute.U_1.V_2.Tree = Tree_mSelect(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  758.           InitProperties = 0X0L;
  759.           break;
  760.         case 279:;
  761.           DEC1(yyStackPtr, 0);
  762.           yyNonterminal = 85;
  763.           yySynAttribute.U_1.V_2.Tree = Tree_nNoDecl;
  764.           break;
  765.         case 280:;
  766.           DEC1(yyStackPtr, 2);
  767.           yyNonterminal = 85;
  768.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  769.           break;
  770.         case 281:;
  771.           DEC1(yyStackPtr, 0);
  772.           yyNonterminal = 97;
  773.           yySynAttribute.U_1.V_2.Tree = Tree_nNoDecl;
  774.           break;
  775.         case 282:;
  776.         case 227:;
  777.           DEC1(yyStackPtr, 6);
  778.           yyNonterminal = 97;
  779.           yySynAttribute.U_1.V_2.Tree = Tree_mDecl(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree), SET_ELEM(Tree_Nonterminal) | SET_ELEM(Tree_Explicit), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  780.           break;
  781.         case 283:;
  782.         case 225:;
  783.           DEC1(yyStackPtr, 6);
  784.           yyNonterminal = 97;
  785.           yySynAttribute.U_1.V_2.Tree = Tree_mDecl(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree), SET_ELEM(Tree_Terminal) | SET_ELEM(Tree_Explicit), yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  786.           break;
  787.         case 284:;
  788.           DEC1(yyStackPtr, 0);
  789.           yyNonterminal = 100;
  790.           Properties = InitProperties;
  791.           break;
  792.         case 285:;
  793.           DEC1(yyStackPtr, 0);
  794.           yyNonterminal = 98;
  795.           Properties = InitProperties;
  796.           break;
  797.         case 286:;
  798.           DEC1(yyStackPtr, 0);
  799.           yyNonterminal = 94;
  800.           yySynAttribute.U_1.V_2.Tree = Tree_nNoName;
  801.           break;
  802.         case 287:;
  803.         case 239:;
  804.           DEC1(yyStackPtr, 2);
  805.           yyNonterminal = 94;
  806.           yySynAttribute.U_1.V_2.Tree = Tree_mName(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  807.           break;
  808.         case 288:;
  809.         case 195:;
  810.           DEC1(yyStackPtr, 2);
  811.           yyNonterminal = 94;
  812.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  813.           break;
  814.         case 289:;
  815.           DEC1(yyStackPtr, 0);
  816.           yyNonterminal = 86;
  817.           yySynAttribute.U_1.V_2.Tree = Tree_nNoClass;
  818.           break;
  819.         case 290:;
  820.           DEC1(yyStackPtr, 2);
  821.           yyNonterminal = 86;
  822.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  823.           break;
  824.         case 291:;
  825.           DEC1(yyStackPtr, 0);
  826.           yyNonterminal = 102;
  827.           yySynAttribute.U_1.V_2.Tree = Tree_nNoClass;
  828.           break;
  829.         case 292:;
  830.         case 230:;
  831.           DEC1(yyStackPtr, 8);
  832.           yyNonterminal = 102;
  833.           INC(ClassCount);
  834.           Strings_IntToString(ClassCount, &String2);
  835.           Strings_ArrayToString((STRING)"yy", 2L, &String1);
  836.           Strings_Concatenate(&String1, &String2);
  837.           ClassIdent = Idents_MakeIdent(&String1);
  838.           yySynAttribute.U_1.V_2.Tree = Tree_mClass(ClassIdent, SET_ELEM(Tree_Nonterminal) | SET_ELEM(Tree_Explicit), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 7].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, ClassIdent, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position, 0, yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  839.           break;
  840.         case 293:;
  841.         case 233:;
  842.           DEC1(yyStackPtr, 9);
  843.           yyNonterminal = 102;
  844.           yySynAttribute.U_1.V_2.Tree = Tree_mClass(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, SET_ELEM(Tree_Nonterminal) | SET_ELEM(Tree_Explicit) | yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Properties, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, 0, yyAttributeStack->A[yyStackPtr + 7].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree);
  845.           break;
  846.         case 294:;
  847.         case 232:;
  848.           DEC1(yyStackPtr, 11);
  849.           yyNonterminal = 102;
  850.           yySynAttribute.U_1.V_2.Tree = Tree_mClass(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, SET_ELEM(Tree_Terminal) | SET_ELEM(Tree_Explicit) | yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Properties | yyAttributeStack->A[yyStackPtr + 7].U_1.V_1.Properties, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 10].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, (SHORTCARD)yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Scan.U_1.V_3.Integer, yyAttributeStack->A[yyStackPtr + 9].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree);
  851.           break;
  852.         case 295:;
  853.         case 231:;
  854.           DEC1(yyStackPtr, 12);
  855.           yyNonterminal = 102;
  856.           yySynAttribute.U_1.V_2.Tree = Tree_mClass(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, SET_ELEM(Tree_Terminal) | SET_ELEM(Tree_Explicit) | SET_ELEM(Tree_HasSelector) | yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Properties | yyAttributeStack->A[yyStackPtr + 8].U_1.V_1.Properties, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 9].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 11].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, (SHORTCARD)yyAttributeStack->A[yyStackPtr + 7].U_1.V_1.Scan.U_1.V_3.Integer, yyAttributeStack->A[yyStackPtr + 10].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree);
  857.           break;
  858.         case 296:;
  859.         case 234:;
  860.           DEC1(yyStackPtr, 9);
  861.           yyNonterminal = 102;
  862.           yySynAttribute.U_1.V_2.Tree = Tree_mClass(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, SET_ELEM(Tree_Abstract) | SET_ELEM(Tree_Explicit) | yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Properties, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, 0, yyAttributeStack->A[yyStackPtr + 7].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree);
  863.           break;
  864.         case 297:;
  865.           DEC1(yyStackPtr, 0);
  866.           yyNonterminal = 112;
  867.           Properties = InitProperties;
  868.           break;
  869.         case 298:;
  870.           DEC1(yyStackPtr, 0);
  871.           yyNonterminal = 111;
  872.           Properties = InitProperties;
  873.           break;
  874.         case 299:;
  875.           DEC1(yyStackPtr, 0);
  876.           yyNonterminal = 108;
  877.           Properties = InitProperties;
  878.           break;
  879.         case 300:;
  880.           DEC1(yyStackPtr, 0);
  881.           yyNonterminal = 107;
  882.           Properties = InitProperties;
  883.           break;
  884.         case 301:;
  885.           DEC1(yyStackPtr, 0);
  886.           yyNonterminal = 104;
  887.           Properties = InitProperties;
  888.           break;
  889.         case 302:;
  890.           DEC1(yyStackPtr, 0);
  891.           yyNonterminal = 103;
  892.           yySynAttribute.U_1.V_2.Tree = Tree_nNoName;
  893.           break;
  894.         case 303:;
  895.           DEC1(yyStackPtr, 2);
  896.           yyNonterminal = 103;
  897.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  898.           break;
  899.         case 304:;
  900.           DEC1(yyStackPtr, 0);
  901.           yyNonterminal = 109;
  902.           yySynAttribute.U_1.V_1.Scan.U_1.V_3.Integer = 0;
  903.           break;
  904.         case 305:;
  905.         case 228:;
  906.           DEC1(yyStackPtr, 1);
  907.           yyNonterminal = 109;
  908.           yySynAttribute.U_1.V_1.Scan.U_1.V_3.Integer = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.U_1.V_3.Integer;
  909.           break;
  910.         case 306:;
  911.           DEC1(yyStackPtr, 0);
  912.           yyNonterminal = 105;
  913.           yySynAttribute.U_1.V_1.Scan.U_1.V_2.Ident = Idents_NoIdent;
  914.           break;
  915.         case 307:;
  916.         case 241:;
  917.           DEC1(yyStackPtr, 2);
  918.           yyNonterminal = 105;
  919.           yySynAttribute.U_1.V_1.Scan.U_1.V_2.Ident = yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident;
  920.           break;
  921.         case 308:;
  922.           DEC1(yyStackPtr, 0);
  923.           yyNonterminal = 106;
  924.           yySynAttribute.U_1.V_2.Tree = Tree_nNoClass;
  925.           break;
  926.         case 309:;
  927.         case 229:;
  928.           DEC1(yyStackPtr, 3);
  929.           yyNonterminal = 106;
  930.           yySynAttribute.U_1.V_2.Tree = Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree);
  931.           break;
  932.         case 310:;
  933.           DEC1(yyStackPtr, 0);
  934.           yyNonterminal = 99;
  935.           yySynAttribute.U_1.V_2.Tree = Tree_nNoAttribute;
  936.           break;
  937.         case 311:;
  938.         case 226:;
  939.           DEC1(yyStackPtr, 2);
  940.           yyNonterminal = 99;
  941.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  942.           Properties = 0X0L;
  943.           break;
  944.         case 312:;
  945.         case 210:;
  946.           DEC1(yyStackPtr, 5);
  947.           yyNonterminal = 99;
  948.           if (IN(Tree_Thread, yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Properties)) {
  949.             Idents_GetString(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, &String1);
  950.             Strings_ArrayToString((STRING)"In", 2L, &String2);
  951.             Strings_Concatenate(&String1, &String2);
  952.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Idents_MakeIdent(&String1), Tree_iInteger, Properties | yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Properties | (SET_ELEM(Tree_Inherited)), yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  953.             Idents_GetString(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, &String1);
  954.             Strings_ArrayToString((STRING)"Out", 3L, &String2);
  955.             Strings_Concatenate(&String1, &String2);
  956.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yySynAttribute.U_1.V_2.Tree, Idents_MakeIdent(&String1), Tree_iInteger, Properties | yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Properties | (SET_ELEM(Tree_Synthesized)), yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  957.           } else {
  958.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, Tree_iInteger, Properties | yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  959.           }
  960.           break;
  961.         case 313:;
  962.         case 209:;
  963.           DEC1(yyStackPtr, 7);
  964.           yyNonterminal = 99;
  965.           if (IN(Tree_Thread, yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Properties)) {
  966.             Idents_GetString(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, &String1);
  967.             Strings_ArrayToString((STRING)"In", 2L, &String2);
  968.             Strings_Concatenate(&String1, &String2);
  969.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Idents_MakeIdent(&String1), yyAttributeStack->A[yyStackPtr + 5].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Properties | (SET_ELEM(Tree_Inherited)), yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  970.             Idents_GetString(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, &String1);
  971.             Strings_ArrayToString((STRING)"Out", 3L, &String2);
  972.             Strings_Concatenate(&String1, &String2);
  973.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yySynAttribute.U_1.V_2.Tree, Idents_MakeIdent(&String1), yyAttributeStack->A[yyStackPtr + 5].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Properties | (SET_ELEM(Tree_Synthesized)), yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  974.           } else {
  975.             yySynAttribute.U_1.V_2.Tree = Tree_mAttribute(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 5].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  976.           }
  977.           break;
  978.         case 314:;
  979.         case 208:;
  980.           DEC1(yyStackPtr, 5);
  981.           yyNonterminal = 99;
  982.           yySynAttribute.U_1.V_2.Tree = Tree_mChild(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  983.           break;
  984.         case 315:;
  985.         case 206:;
  986.           DEC1(yyStackPtr, 7);
  987.           yyNonterminal = 99;
  988.           yySynAttribute.U_1.V_2.Tree = Tree_mChild(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 5].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position);
  989.           break;
  990.         case 316:;
  991.           DEC1(yyStackPtr, 3);
  992.           yyNonterminal = 99;
  993.           yySynAttribute.U_1.V_2.Tree = Tree_mChild(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position);
  994.           break;
  995.         case 317:;
  996.           DEC1(yyStackPtr, 5);
  997.           yyNonterminal = 99;
  998.           yySynAttribute.U_1.V_2.Tree = Tree_mChild(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Scan.U_1.V_2.Ident, Properties | yyAttributeStack->A[yyStackPtr + 5].U_1.V_1.Properties, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position);
  999.           break;
  1000.         case 318:;
  1001.         case 217:;
  1002.           DEC1(yyStackPtr, 4);
  1003.           yyNonterminal = 99;
  1004.           yySynAttribute.U_1.V_2.Tree = Tree_mActionPart(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree));
  1005.           break;
  1006.         case 319:;
  1007.           DEC1(yyStackPtr, 0);
  1008.           yyNonterminal = 110;
  1009.           yySynAttribute.U_1.V_1.Properties = 0X0L;
  1010.           break;
  1011.         case 320:;
  1012.           DEC1(yyStackPtr, 0);
  1013.           yyNonterminal = 96;
  1014.           yySynAttribute.U_1.V_1.Properties = 0X0L;
  1015.           break;
  1016.         case 321:;
  1017.         case 199:;
  1018.           DEC1(yyStackPtr, 2);
  1019.           yyNonterminal = 96;
  1020.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Reverse));
  1021.           break;
  1022.         case 322:;
  1023.         case 202:;
  1024.           DEC1(yyStackPtr, 2);
  1025.           yyNonterminal = 96;
  1026.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Input));
  1027.           break;
  1028.         case 323:;
  1029.         case 203:;
  1030.           DEC1(yyStackPtr, 2);
  1031.           yyNonterminal = 96;
  1032.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Output));
  1033.           break;
  1034.         case 324:;
  1035.         case 204:;
  1036.           DEC1(yyStackPtr, 2);
  1037.           yyNonterminal = 96;
  1038.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Synthesized));
  1039.           break;
  1040.         case 325:;
  1041.         case 205:;
  1042.           DEC1(yyStackPtr, 2);
  1043.           yyNonterminal = 96;
  1044.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Inherited));
  1045.           break;
  1046.         case 326:;
  1047.         case 200:;
  1048.           DEC1(yyStackPtr, 2);
  1049.           yyNonterminal = 96;
  1050.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Thread));
  1051.           break;
  1052.         case 327:;
  1053.         case 197:;
  1054.           DEC1(yyStackPtr, 2);
  1055.           yyNonterminal = 96;
  1056.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Virtual));
  1057.           break;
  1058.         case 328:;
  1059.         case 198:;
  1060.           DEC1(yyStackPtr, 2);
  1061.           yyNonterminal = 96;
  1062.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Stack));
  1063.           break;
  1064.         case 329:;
  1065.         case 201:;
  1066.           DEC1(yyStackPtr, 2);
  1067.           yyNonterminal = 96;
  1068.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Demand));
  1069.           break;
  1070.         case 330:;
  1071.         case 196:;
  1072.           DEC1(yyStackPtr, 2);
  1073.           yyNonterminal = 96;
  1074.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Funct));
  1075.           break;
  1076.         case 331:;
  1077.         case 207:;
  1078.           DEC1(yyStackPtr, 2);
  1079.           yyNonterminal = 96;
  1080.           yySynAttribute.U_1.V_1.Properties = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Properties | (SET_ELEM(Tree_Ignore));
  1081.           break;
  1082.         case 332:;
  1083.           DEC1(yyStackPtr, 0);
  1084.           yyNonterminal = 113;
  1085.           yySynAttribute.U_1.V_2.Tree = Tree_nNoAction;
  1086.           break;
  1087.         case 333:;
  1088.         case 222:;
  1089.           DEC1(yyStackPtr, 5);
  1090.           yyNonterminal = 113;
  1091.           yySynAttribute.U_1.V_2.Tree = Tree_mAssign(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree));
  1092.           break;
  1093.         case 334:;
  1094.         case 223:;
  1095.           DEC1(yyStackPtr, 5);
  1096.           yyNonterminal = 113;
  1097.           yySynAttribute.U_1.V_2.Tree = Tree_mCopy(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree));
  1098.           break;
  1099.         case 335:;
  1100.         case 221:;
  1101.           DEC1(yyStackPtr, 9);
  1102.           yyNonterminal = 113;
  1103.           yySynAttribute.U_1.V_2.Tree = Tree_mTargetCode(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree));
  1104.           break;
  1105.         case 336:;
  1106.         case 218:;
  1107.           DEC1(yyStackPtr, 5);
  1108.           yyNonterminal = 113;
  1109.           yySynAttribute.U_1.V_2.Tree = Tree_mOrder(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Positions_NoPosition, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree));
  1110.           break;
  1111.         case 337:;
  1112.         case 219:;
  1113.           DEC1(yyStackPtr, 5);
  1114.           yyNonterminal = 113;
  1115.           yySynAttribute.U_1.V_2.Tree = Tree_mOrder(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Positions_NoPosition, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree));
  1116.           break;
  1117.         case 338:;
  1118.         case 224:;
  1119.           DEC1(yyStackPtr, 3);
  1120.           yyNonterminal = 113;
  1121.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree;
  1122.           yySynAttribute.U_1.V_2.Tree->U_1.V_40.Check.Next = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  1123.           break;
  1124.         case 339:;
  1125.         case 220:;
  1126.           DEC1(yyStackPtr, 3);
  1127.           yyNonterminal = 113;
  1128.           yySynAttribute.U_1.V_2.Tree = Tree_mTargetCode(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Scanner_Attribute.Position, Tree_nNoDesignator, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree));
  1129.           break;
  1130.         case 340:;
  1131.           DEC1(yyStackPtr, 2);
  1132.           yyNonterminal = 113;
  1133.           yySynAttribute.U_1.V_2.Tree = Tree_mTargetCode(yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree, Scanner_Attribute.Position, Tree_nNoDesignator, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree));
  1134.           break;
  1135.         case 341:;
  1136.           DEC1(yyStackPtr, 1);
  1137.           yyNonterminal = 115;
  1138.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  1139.           break;
  1140.         case 342:;
  1141.         case 240:;
  1142.           DEC1(yyStackPtr, 2);
  1143.           yyNonterminal = 115;
  1144.           yySynAttribute.U_1.V_2.Tree = yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree;
  1145.           yySynAttribute.U_1.V_2.Tree->U_1.V_40.Check.Actions = yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree;
  1146.           break;
  1147.         case 343:;
  1148.           DEC1(yyStackPtr, 2);
  1149.           yyNonterminal = 116;
  1150.           yySynAttribute.U_1.V_2.Tree = Tree_mCheck(Tree_nNoAction, Positions_NoPosition, (Tree_tTree)Tree_NoTree, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_nNoAction);
  1151.           break;
  1152.         case 344:;
  1153.           DEC1(yyStackPtr, 6);
  1154.           yyNonterminal = 116;
  1155.           yySynAttribute.U_1.V_2.Tree = Tree_mCheck(Tree_nNoAction, Positions_NoPosition, (Tree_tTree)Tree_NoTree, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree), Tree_nNoAction);
  1156.           break;
  1157.         case 345:;
  1158.           DEC1(yyStackPtr, 2);
  1159.           yyNonterminal = 116;
  1160.           yySynAttribute.U_1.V_2.Tree = Tree_mCheck(Tree_nNoAction, yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), (Tree_tTree)Tree_NoTree, Tree_nNoAction);
  1161.           break;
  1162.         case 346:;
  1163.           DEC1(yyStackPtr, 4);
  1164.           yyNonterminal = 116;
  1165.           yySynAttribute.U_1.V_2.Tree = Tree_mCheck(Tree_nNoAction, yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 4].U_1.V_2.Tree), Tree_nNoAction);
  1166.           break;
  1167.         case 347:;
  1168.           DEC1(yyStackPtr, 8);
  1169.           yyNonterminal = 116;
  1170.           yySynAttribute.U_1.V_2.Tree = Tree_mCheck(Tree_nNoAction, yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.Position, Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 2].U_1.V_2.Tree), Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree), Tree_nNoAction);
  1171.           break;
  1172.         case 348:;
  1173.           DEC1(yyStackPtr, 0);
  1174.           yyNonterminal = 114;
  1175.           yySynAttribute.U_1.V_2.Tree = Tree_nNoDesignator;
  1176.           break;
  1177.         case 349:;
  1178.         case 216:;
  1179.           DEC1(yyStackPtr, 6);
  1180.           yyNonterminal = 114;
  1181.           yySynAttribute.U_1.V_2.Tree = Tree_mDesignator(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1182.           break;
  1183.         case 350:;
  1184.           DEC1(yyStackPtr, 5);
  1185.           yyNonterminal = 114;
  1186.           yySynAttribute.U_1.V_2.Tree = Tree_mIdent(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1187.           yySynAttribute.U_1.V_2.Tree = Tree_mAnys(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yySynAttribute.U_1.V_2.Tree);
  1188.           yySynAttribute.U_1.V_2.Tree = Tree_mAny(yyAttributeStack->A[yyStackPtr + 4].U_1.V_1.Scan.U_1.V_1.StringRef, yySynAttribute.U_1.V_2.Tree);
  1189.           yySynAttribute.U_1.V_2.Tree = Tree_mAnys(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree), yySynAttribute.U_1.V_2.Tree);
  1190.           break;
  1191.         case 351:;
  1192.           DEC1(yyStackPtr, 3);
  1193.           yyNonterminal = 114;
  1194.           yySynAttribute.U_1.V_2.Tree = Tree_mIdent(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.Position, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1195.           yySynAttribute.U_1.V_2.Tree = Tree_mAnys(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yySynAttribute.U_1.V_2.Tree);
  1196.           break;
  1197.         case 352:;
  1198.         case 213:;
  1199.           DEC1(yyStackPtr, 2);
  1200.           yyNonterminal = 114;
  1201.           yySynAttribute.U_1.V_2.Tree = Tree_mAny(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_1.StringRef, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1202.           break;
  1203.         case 353:;
  1204.         case 215:;
  1205.           DEC1(yyStackPtr, 10);
  1206.           yyNonterminal = 114;
  1207.           yySynAttribute.U_1.V_2.Tree = Tree_mRemote(Tree_ReverseTree(yyAttributeStack->A[yyStackPtr + 3].U_1.V_2.Tree), yyAttributeStack->A[yyStackPtr + 6].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 10].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 10].U_1.V_1.Scan.Position, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1208.           break;
  1209.         case 354:;
  1210.         case 211:;
  1211.           DEC1(yyStackPtr, 2);
  1212.           yyNonterminal = 114;
  1213.           yySynAttribute.U_1.V_2.Tree = Tree_mAny(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_1.StringRef, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1214.           break;
  1215.         case 355:;
  1216.         case 212:;
  1217.           DEC1(yyStackPtr, 2);
  1218.           yyNonterminal = 114;
  1219.           yySynAttribute.U_1.V_2.Tree = Tree_mAny(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_1.StringRef, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1220.           break;
  1221.         case 356:;
  1222.           DEC1(yyStackPtr, 0);
  1223.           yyNonterminal = 87;
  1224.           yySynAttribute.U_1.V_2.Tree = Tree_nNoModule;
  1225.           break;
  1226.         case 357:;
  1227.         case 235:;
  1228.           DEC1(yyStackPtr, 12);
  1229.           yyNonterminal = 87;
  1230.           yySynAttribute.U_1.V_2.Tree = Tree_mModule(yyAttributeStack->A[yyStackPtr + 3].U_1.V_1.Scan.U_1.V_2.Ident, yyAttributeStack->A[yyStackPtr + 5].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 6].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 7].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 8].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 9].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 10].U_1.V_2.Tree, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1231.           break;
  1232.         case 358:;
  1233.           DEC1(yyStackPtr, 0);
  1234.           yyNonterminal = 118;
  1235.           ModuleIdent = yyAttributeStack->A[yyStackPtr + 0].U_1.V_1.Scan.U_1.V_2.Ident;
  1236.           break;
  1237.         case 359:;
  1238.         case 185:;
  1239.           DEC1(yyStackPtr, 1);
  1240.           yyNonterminal = 90;
  1241.           yySynAttribute.U_1.V_1.Scan = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan;
  1242.           break;
  1243.         case 360:;
  1244.         case 186:;
  1245.           DEC1(yyStackPtr, 1);
  1246.           yyNonterminal = 90;
  1247.           yySynAttribute.U_1.V_1.Scan = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan;
  1248.           StringMem_GetString(yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.U_1.V_1.StringRef, &String1);
  1249.           Strings_SubString(&String1, 2, (Strings_tStringIndex)(Strings_Length(&String1) - 1), &String2);
  1250.           yySynAttribute.U_1.V_1.Scan.U_1.V_2.Ident = Idents_MakeIdent(&String2);
  1251.           break;
  1252.         case 361:;
  1253.         case 193:;
  1254.           DEC1(yyStackPtr, 1);
  1255.           yyNonterminal = 101;
  1256.           yySynAttribute.U_1.V_1.Scan = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan;
  1257.           yySynAttribute.U_1.V_1.Properties = 0X0L;
  1258.           break;
  1259.         case 362:;
  1260.         case 194:;
  1261.           DEC1(yyStackPtr, 1);
  1262.           yyNonterminal = 101;
  1263.           yySynAttribute.U_1.V_1.Scan = yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan;
  1264.           StringMem_GetString(yyAttributeStack->A[yyStackPtr + 1].U_1.V_1.Scan.U_1.V_1.StringRef, &String1);
  1265.           yySynAttribute.U_1.V_1.Scan.U_1.V_2.Ident = Idents_MakeIdent(&String1);
  1266.           yySynAttribute.U_1.V_1.Properties = SET_ELEM(Tree_String);
  1267.           break;
  1268.         case 363:;
  1269.           DEC1(yyStackPtr, 0);
  1270.           yyNonterminal = 117;
  1271.           yySynAttribute.U_1.V_2.Tree = Tree_nNoLayout;
  1272.           break;
  1273.         case 364:;
  1274.         case 214:;
  1275.           DEC1(yyStackPtr, 2);
  1276.           yyNonterminal = 117;
  1277.           yySynAttribute.U_1.V_2.Tree = Tree_mLayoutAny(yyAttributeStack->A[yyStackPtr + 2].U_1.V_1.Scan.U_1.V_1.StringRef, yyAttributeStack->A[yyStackPtr + 1].U_1.V_2.Tree);
  1278.           break;
  1279.         }
  1280.         yyNCombPtr = (yyNCombTypePtr)((LONGCARD)yyNBasePtr.A[yyStateStack->A[yyStackPtr]] + yyNonterminal * sizeof(yyNCombType));
  1281.         yyState = *yyNCombPtr;
  1282.         INC(yyStackPtr);
  1283.         yyAttributeStack->A[yyStackPtr] = yySynAttribute;
  1284.         if (yyState < yyFirstFinalState) {
  1285.           goto EXIT_3;
  1286.         }
  1287.       } EXIT_3:;
  1288.     } else {
  1289.       INC(yyStackPtr);
  1290.       yyAttributeStack->A[yyStackPtr].U_1.V_1.Scan = Scanner_Attribute;
  1291.       yyTerminal = Scanner_GetToken();
  1292.       yyIsRepairing = FALSE;
  1293.     }
  1294.   } EXIT_1:;
  1295. }
  1296.  
  1297. static void ErrorRecovery
  1298. # ifdef __STDC__
  1299. (yySymbolRange *Terminal, yyStackType StateStack, LONGINT StackSize, LONGINT StackPtr)
  1300. # else
  1301. (Terminal, StateStack, StackSize, StackPtr)
  1302. yySymbolRange *Terminal;
  1303. yyStackType StateStack;
  1304. LONGINT StackSize;
  1305. LONGINT StackPtr;
  1306. # endif
  1307. {
  1308.   BOOLEAN TokensSkipped;
  1309.   Sets_tSet ContinueSet;
  1310.   Sets_tSet RestartSet;
  1311.   yySymbolRange Token;
  1312.   struct S_18 TokenArray;
  1313.   Strings_tString TokenString;
  1314.   Strings_tString ContinueString;
  1315.  
  1316.   Errors_ErrorMessage((LONGCARD)Errors_SyntaxError, (LONGCARD)Errors_Error, Scanner_Attribute.Position);
  1317.   Sets_MakeSet(&ContinueSet, (LONGCARD)yyLastTerminal);
  1318.   ComputeContinuation(StateStack, StackSize, StackPtr, &ContinueSet);
  1319.   Strings_AssignEmpty(&ContinueString);
  1320.   {
  1321.     yySymbolRange B_3 = Sets_Minimum(&ContinueSet), B_4 = Sets_Maximum(&ContinueSet);
  1322.  
  1323.     if (B_3 <= B_4)
  1324.       for (Token = B_3;; Token += 1) {
  1325.         if (Sets_IsElement((LONGCARD)Token, &ContinueSet)) {
  1326.           Parser_TokenName((LONGCARD)Token, TokenArray.A, 128L);
  1327.           Strings_ArrayToString(TokenArray.A, 128L, &TokenString);
  1328.           if (Strings_Length(&ContinueString) + Strings_Length(&TokenString) + 1 <= Strings_cMaxStrLength) {
  1329.             Strings_Concatenate(&ContinueString, &TokenString);
  1330.             Strings_Append(&ContinueString, ' ');
  1331.           }
  1332.         }
  1333.         if (Token >= B_4) break;
  1334.       }
  1335.   }
  1336.   Errors_ErrorMessageI((LONGCARD)Errors_ExpectedTokens, (LONGCARD)Errors_Information, Scanner_Attribute.Position, (LONGCARD)Errors_String, ADR(ContinueString));
  1337.   Sets_ReleaseSet(&ContinueSet);
  1338.   Sets_MakeSet(&RestartSet, (LONGCARD)yyLastTerminal);
  1339.   ComputeRestartPoints(StateStack, StackSize, StackPtr, &RestartSet);
  1340.   TokensSkipped = FALSE;
  1341.   while (!Sets_IsElement((LONGCARD)(*Terminal), &RestartSet)) {
  1342.     *Terminal = Scanner_GetToken();
  1343.     TokensSkipped = TRUE;
  1344.   }
  1345.   Sets_ReleaseSet(&RestartSet);
  1346.   if (TokensSkipped) {
  1347.     Errors_ErrorMessage((LONGCARD)Errors_RestartPoint, (LONGCARD)Errors_Information, Scanner_Attribute.Position);
  1348.   }
  1349. }
  1350.  
  1351. static void ComputeContinuation
  1352. # ifdef __STDC__
  1353. (yyStackType Stack, LONGINT StackSize, LONGINT StackPtr, Sets_tSet *ContinueSet)
  1354. # else
  1355. (Stack, StackSize, StackPtr, ContinueSet)
  1356. yyStackType Stack;
  1357. LONGINT StackSize;
  1358. LONGINT StackPtr;
  1359. Sets_tSet *ContinueSet;
  1360. # endif
  1361. {
  1362.   yySymbolRange Terminal;
  1363.  
  1364.   Sets_AssignEmpty(ContinueSet);
  1365.   for (Terminal = yyFirstTerminal; Terminal <= yyLastTerminal; Terminal += 1) {
  1366.     if (IsContinuation(Terminal, Stack, StackSize, StackPtr)) {
  1367.       Sets_Include(ContinueSet, (LONGCARD)Terminal);
  1368.     }
  1369.   }
  1370. }
  1371.  
  1372. static BOOLEAN IsContinuation
  1373. # ifdef __STDC__
  1374. (yySymbolRange Terminal, yyStackType ParseStack, LONGINT StackSize, LONGINT StackPtr)
  1375. # else
  1376. (Terminal, ParseStack, StackSize, StackPtr)
  1377. yySymbolRange Terminal;
  1378. yyStackType ParseStack;
  1379. LONGINT StackSize;
  1380. LONGINT StackPtr;
  1381. # endif
  1382. {
  1383.   LONGINT State;
  1384.   yySymbolRange Nonterminal;
  1385.   yyStackType Stack;
  1386.  
  1387.   DynArray_MakeArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1388.   {
  1389.     LONGINT B_5 = 0, B_6 = StackPtr;
  1390.  
  1391.     if (B_5 <= B_6)
  1392.       for (State = B_5;; State += 1) {
  1393.         Stack->A[State] = ParseStack->A[State];
  1394.         if (State >= B_6) break;
  1395.       }
  1396.   }
  1397.   State = Stack->A[StackPtr];
  1398.   for (;;) {
  1399.     Stack->A[StackPtr] = State;
  1400.     State = Next((yyStateRange)State, Terminal);
  1401.     if (State == yyNoState) {
  1402.       DynArray_ReleaseArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1403.       return FALSE;
  1404.     }
  1405.     if (State <= yyLastReadTermState) {
  1406.       DynArray_ReleaseArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1407.       return TRUE;
  1408.     }
  1409.     for (;;) {
  1410.       if (State == yyStopState) {
  1411.         DynArray_ReleaseArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1412.         return TRUE;
  1413.       } else {
  1414.         DEC1(StackPtr, yyLength.A[State - 242]);
  1415.         Nonterminal = yyLeftHandSide.A[State - 242];
  1416.       }
  1417.       State = Next(Stack->A[StackPtr], Nonterminal);
  1418.       if (StackPtr >= StackSize) {
  1419.         DynArray_ExtendArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1420.       }
  1421.       INC(StackPtr);
  1422.       if (State < yyFirstFinalState) {
  1423.         goto EXIT_5;
  1424.       }
  1425.       State = yyFinalToProd.A[State - 185];
  1426.     } EXIT_5:;
  1427.   } EXIT_4:;
  1428. }
  1429.  
  1430. static void ComputeRestartPoints
  1431. # ifdef __STDC__
  1432. (yyStackType ParseStack, LONGINT StackSize, LONGINT StackPtr, Sets_tSet *RestartSet)
  1433. # else
  1434. (ParseStack, StackSize, StackPtr, RestartSet)
  1435. yyStackType ParseStack;
  1436. LONGINT StackSize;
  1437. LONGINT StackPtr;
  1438. Sets_tSet *RestartSet;
  1439. # endif
  1440. {
  1441.   yyStackType Stack;
  1442.   LONGINT State;
  1443.   yySymbolRange Nonterminal;
  1444.   Sets_tSet ContinueSet;
  1445.  
  1446.   DynArray_MakeArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1447.   {
  1448.     LONGINT B_7 = 0, B_8 = StackPtr;
  1449.  
  1450.     if (B_7 <= B_8)
  1451.       for (State = B_7;; State += 1) {
  1452.         Stack->A[State] = ParseStack->A[State];
  1453.         if (State >= B_8) break;
  1454.       }
  1455.   }
  1456.   Sets_MakeSet(&ContinueSet, (LONGCARD)yyLastTerminal);
  1457.   Sets_AssignEmpty(RestartSet);
  1458.   State = Stack->A[StackPtr];
  1459.   for (;;) {
  1460.     if (StackPtr >= StackSize) {
  1461.       DynArray_ExtendArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1462.     }
  1463.     Stack->A[StackPtr] = State;
  1464.     ComputeContinuation(Stack, StackSize, StackPtr, &ContinueSet);
  1465.     Sets_Union(RestartSet, ContinueSet);
  1466.     State = Next((yyStateRange)State, yyContinuation.A[State]);
  1467.     if (State >= yyFirstFinalState) {
  1468.       if (State <= yyLastReadTermState) {
  1469.         INC(StackPtr);
  1470.         State = yyFinalToProd.A[State - 185];
  1471.       }
  1472.       for (;;) {
  1473.         if (State == yyStopState) {
  1474.           DynArray_ReleaseArray((ADDRESS *)&Stack, &StackSize, (LONGINT)sizeof(yyStateRange));
  1475.           Sets_ReleaseSet(&ContinueSet);
  1476.           return;
  1477.         } else {
  1478.           DEC1(StackPtr, yyLength.A[State - 242]);
  1479.           Nonterminal = yyLeftHandSide.A[State - 242];
  1480.         }
  1481.         State = Next(Stack->A[StackPtr], Nonterminal);
  1482.         INC(StackPtr);
  1483.         if (State < yyFirstFinalState) {
  1484.           goto EXIT_7;
  1485.         }
  1486.         State = yyFinalToProd.A[State - 185];
  1487.       } EXIT_7:;
  1488.     } else {
  1489.       INC(StackPtr);
  1490.     }
  1491.   } EXIT_6:;
  1492. }
  1493.  
  1494. static yyStateRange Next
  1495. # ifdef __STDC__
  1496. (yyStateRange State, yySymbolRange Symbol)
  1497. # else
  1498. (State, Symbol)
  1499. yyStateRange State;
  1500. yySymbolRange Symbol;
  1501. # endif
  1502. {
  1503.   yyTCombTypePtr TCombPtr;
  1504.   yyNCombTypePtr NCombPtr;
  1505.  
  1506.   if (Symbol <= yyLastTerminal) {
  1507.     for (;;) {
  1508.       TCombPtr = (yyTCombTypePtr)((LONGCARD)yyTBasePtr.A[State] + Symbol * sizeof(yyTCombType));
  1509.       if (TCombPtr->Check != State) {
  1510.         State = yyDefault.A[State];
  1511.         if (State == yyNoState) {
  1512.           return yyNoState;
  1513.         }
  1514.       } else {
  1515.         return TCombPtr->Next;
  1516.       }
  1517.     } EXIT_8:;
  1518.   } else {
  1519.     NCombPtr = (yyNCombTypePtr)((LONGCARD)yyNBasePtr.A[State] + Symbol * sizeof(yyNCombType));
  1520.     return *NCombPtr;
  1521.   }
  1522. }
  1523.  
  1524. static void yyGetTables
  1525. # ifdef __STDC__
  1526. ()
  1527. # else
  1528. ()
  1529. # endif
  1530. {
  1531.   CARDINAL BlockSize, j, n;
  1532.   yyStateRange State;
  1533.   struct S_19 TBase;
  1534.   struct S_20 NBase;
  1535.  
  1536.   BlockSize = 64000 / sizeof(yyTCombType);
  1537.   yyTableFile = OpenInput(Parser_ParsTabName.A, 129L);
  1538.   yyErrorCheck((LONGINT)Errors_OpenParseTable, yyTableFile);
  1539.   if (yyGetTable(ADR(TBase)) / sizeof(yyTCombRange) - 1 != yyLastReadState || yyGetTable(ADR(NBase)) / sizeof(yyNCombRange) - 1 != yyLastReadState || yyGetTable(ADR(yyDefault)) / sizeof(yyReadRange) - 1 != yyLastReadState || yyGetTable(ADR(yyNComb)) / sizeof(yyNCombType) != yyNTableMax - yyLastTerminal || yyGetTable(ADR(yyLength)) / sizeof(yyTableElmt) - 1 != yyLastReduceState - yyFirstReduceState || yyGetTable(ADR(yyLeftHandSide)) / sizeof(yySymbolRange) - 1 != yyLastReduceState - yyFirstReduceState || yyGetTable(ADR(yyContinuation)) / sizeof(yySymbolRange) - 1 != yyLastReadState || yyGetTable(ADR(yyFinalToProd)) / sizeof(yyReduceRange) - 1 != yyLastReadNontermState - yyFirstReadTermState) {
  1540.     Errors_ErrorMessage((LONGCARD)Errors_WrongParseTable, (LONGCARD)Errors_Fatal, Positions_NoPosition);
  1541.   }
  1542.   n = 0;
  1543.   j = 0;
  1544.   while (j <= yyTableMax) {
  1545.     INC1(n, yyGetTable(ADR(yyTComb.A[j])) / sizeof(yyTCombType));
  1546.     INC1(j, BlockSize);
  1547.   }
  1548.   if (n != yyTableMax + 1) {
  1549.     Errors_ErrorMessage((LONGCARD)Errors_WrongParseTable, (LONGCARD)Errors_Fatal, Positions_NoPosition);
  1550.   }
  1551.   Close(yyTableFile);
  1552.   for (State = 1; State <= yyLastReadState; State += 1) {
  1553.     yyTBasePtr.A[State] = (yyTCombTypePtr)ADR(yyTComb.A[TBase.A[State]]);
  1554.   }
  1555.   for (State = 1; State <= yyLastReadState; State += 1) {
  1556.     yyNBasePtr.A[State] = (yyNCombTypePtr)ADR(yyNComb.A[NBase.A[State] - 79]);
  1557.   }
  1558. }
  1559.  
  1560. static CARDINAL yyGetTable
  1561. # ifdef __STDC__
  1562. (ADDRESS Address)
  1563. # else
  1564. (Address)
  1565. ADDRESS Address;
  1566. # endif
  1567. {
  1568.   INTEGER N;
  1569.   yyTableElmt Length;
  1570.  
  1571.   N = Read(yyTableFile, ADR(Length), (LONGINT)sizeof(yyTableElmt));
  1572.   yyErrorCheck((LONGINT)Errors_ReadParseTable, N);
  1573.   N = Read(yyTableFile, Address, (LONGINT)Length);
  1574.   yyErrorCheck((LONGINT)Errors_ReadParseTable, N);
  1575.   return Length;
  1576. }
  1577.  
  1578. static void yyErrorCheck
  1579. # ifdef __STDC__
  1580. (INTEGER ErrorCode, INTEGER Info)
  1581. # else
  1582. (ErrorCode, Info)
  1583. INTEGER ErrorCode;
  1584. INTEGER Info;
  1585. # endif
  1586. {
  1587.   INTEGER ErrNo;
  1588.  
  1589.   if (Info < 0) {
  1590.     ErrNo = ErrNum();
  1591.     Errors_ErrorMessageI((LONGCARD)ErrorCode, (LONGCARD)Errors_Fatal, Positions_NoPosition, (LONGCARD)Errors_Integer, ADR(ErrNo));
  1592.   }
  1593. }
  1594.  
  1595. static void BeginParser
  1596. # ifdef __STDC__
  1597. ()
  1598. # else
  1599. ()
  1600. # endif
  1601. {
  1602.   Scanner_BeginScanner();
  1603.   ClassCount = 0;
  1604.   InitProperties = SET_ELEM(Tree_Input);
  1605.   ModuleIdent = Idents_NoIdent;
  1606.   Tree_SubUnit = Idents_NoIdent;
  1607.   Tree_ViewName = Idents_NoIdent;
  1608.   ParserName = Idents_NoIdent;
  1609.   TreeName = Idents_NoIdent;
  1610.   EvalName = Idents_NoIdent;
  1611.   if (!yyIsInitialized) {
  1612.     yyIsInitialized = TRUE;
  1613.     yyGetTables();
  1614.   }
  1615. }
  1616.  
  1617. void Parser_CloseParser
  1618. # ifdef __STDC__
  1619. ()
  1620. # else
  1621. ()
  1622. # endif
  1623. {
  1624. }
  1625.  
  1626. void BEGIN_Parser()
  1627. {
  1628.   static BOOLEAN has_been_called = FALSE;
  1629.  
  1630.   if (!has_been_called) {
  1631.     has_been_called = TRUE;
  1632.  
  1633.     BEGIN_Scanner();
  1634.     BEGIN_Positions();
  1635.     BEGIN_Errors();
  1636.     BEGIN_Strings();
  1637.     BEGIN_DynArray();
  1638.     BEGIN_Sets();
  1639.     BEGIN_System();
  1640.     BEGIN_StringMem();
  1641.     BEGIN_Strings();
  1642.     BEGIN_Idents();
  1643.     BEGIN_Texts();
  1644.     BEGIN_Scanner();
  1645.     BEGIN_Positions();
  1646.     BEGIN_Idents();
  1647.     BEGIN_Tree();
  1648.  
  1649.     yyIsInitialized = FALSE;
  1650.     (void)strncpy((char *)Parser_ParsTabName.A, "Parser.Tab", sizeof(Parser_ParsTabName.A));
  1651.   }
  1652. }
  1653.